import 'package:flutter/material.dart';

main(List<String> args) {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("商品列表"),
      ),
      body: HomeContent(10),
    );
  }
}

// widget是不加_：暴露给别人用的
class HomeContent extends StatefulWidget {
  final int count;
  final String message;
  HomeContent(this.count,{String message}):this.message = message??"你好啊，shy";
  @override
  _HomeContentState createState() => _HomeContentState();
}

// 为什么flutter在设计statefulwidget的时候把build的方法放在state中
// 1.build出来的widget是需要依赖state中的变量（状态/数据）
// 2.在fultter的运行中：
//  widget是不断的销毁和创建的
//  当我们自己的状态发生改变时，并不希望重新创建一个新的state
// state是加_：状态这个类只是给widget使用的
class _HomeContentState extends State<HomeContent> {
  int value = 0;
  _HomeContentState({int value}):this.value = value ?? 20{

  }
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          _getButtons(),
          Text("当前计数:" + value.toString(),style:TextStyle(fontSize: 30.0,),),
          Text("传递过来的数据：${widget.message}"),
        ],
      ),
    );
  }

  Widget _getButtons() {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        RaisedButton(
          child: Text("-",style:TextStyle(fontSize: 20.0,color: Colors.white),),
          color: Colors.pink,
          onPressed: () {
            setState(() {
              value --;
            });
          },
        ),
        RaisedButton(
          child: Text("+",style:TextStyle(fontSize: 20.0,color: Colors.white),),
          color: Colors.purple,
          onPressed: () {
            setState(() {
              value ++;
            });
          },
        )
      ],
    );
  }
}
